The present invention relates to a program executing system for semiconductor testing equipment that tests a DUT (device under test) based on a device test program for semiconductor testing equipment, and in particular, to a program executing system for semiconductor testing equipment that conducts tests based on a plurality of device test programs configured by commonly using a predetermined program file.
Conventionally, semiconductor testing equipment that carries out predetermined operation tests on various semiconductor elements is known. Examples of these semiconductor elements as DUT are semiconductor memory, logic IC and linear IC, etc., and these semiconductor elements are tested with semiconductor testing equipment suited to each of these semiconductor elements. This semiconductor testing equipment is used to conduct predetermined function tests and DC tests (DC parametric tests) by executing a predetermined device test program created by the user. This semiconductor testing equipment is connected to a workstation that creates a device test source program, which becomes the source of device test program, operates as an interface for the user to instruct various operations, displays and analyzes test results of the semiconductor testing equipment.
In general, a device test source program created by a workstation is subjected to interpretation of preprocessor commands as represented by a xe2x80x9c#includexe2x80x9d command of the C language and converted to a pre-processed source program by a preprocessor. The converted pre-processed source program is compiled and converted to a plurality of object file groups by a compiler. The plurality of compiled object file groups are subjected to linkage processing together with other object files by a linker and converted to a device test program, which is an execution file. Such a series of operations results in a device test program, which is executed by the semiconductor testing equipment. The semiconductor testing equipment operates based on this device test program and conducts predetermined tests on semiconductor elements.
Such semiconductor testing equipment is configured by including a tester control section that controls the operation of the entire semiconductor testing equipment, a tester that actually creates test signals, etc. under the control of this tester control section and supplies them to semiconductor elements, etc. and test heads on which the semiconductor elements are mounted. This semiconductor testing equipment normally includes two test heads and efficiently conducts tests by using both test heads alternately. If semiconductor elements of a same type are mounted on both test heads to conduct identical tests, these tests can be conducted by using a same device test program by simply alternating between the two test heads. Furthermore, if semiconductor elements of different types are mounted on the two test heads to conduct different tests, the semiconductor testing equipment stores two device test programs for their respective semiconductor elements in a program area of memory separately and selects one of them according to the test head.
However, if a device test source program is configured by using the above described xe2x80x9c#includexe2x80x9d command, a common file specified by this xe2x80x9c#includexe2x80x9d command is directly inserted into a specified location of the source program. The inserted common file is compiled as it is and converted to an object file. When the compiled device test program is executed by the semiconductor testing equipment, the common file is simply executed with the same inserted contents, and variables and functions, etc. defined by that common file are redefined every time it is executed. Therefore, the prior art stores a test result of a semiconductor element mounted on one of the two test heads as a variable or function defined by the common file, but the prior art is unable to reflect the test result in processing based on the device test program controlling a test of the semiconductor element mounted on the other test head. Moreover, if the program contents with variables and functions defined by the common file are changed due to execution of other files, the prior art is unable to reflect the changed contents of the program in the processing based on the device test program controlling a test of the semiconductor element mounted on the other test head, either.
The present invention has been achieved by taking into account the points described above and it is an objective of the present invention to provide a program executing system for semiconductor testing equipment capable of sharing a test result or changed contents of the program resulting from execution of the device test programs controlling their respective test heads.
The program executing system for semiconductor testing equipment according to the present invention includes first program supply unit that supplies a first device test program configured by including a program specification command specifying a common program as a test program for a DUT mounted on the first test head, second program supply unit that supplies a second device test program configured by including a program specification command specifying the common program as a test program for a DUT mounted on the second test head, and execution unit that, by inserting an intermediate code for a linkage to the common program specified by the program specification command at the positions of the program specification commands in the first and second device test programs, compiles the first and second device test programs and executes the common program independently of the first and second device test programs based on the intermediate code at the time of executing the compiled first and second device test programs above.
In particular, the execution unit includes compiling unit that compiles the first and second device test programs into the intermediate code group above and interpreter unit that interprets and executes the intermediate code group output from the compiling unit.
At the time of compiling the first and second device test programs, the program executing system according to the present invention inserts an intermediate code for a linkage to a common program, instead of simply developing and inserting a specified common program at the position as in case of compiling a xe2x80x9c#includexe2x80x9d command, which is a conventional program specification command. Then, at the time of executing the compiled first and second device test programs, the execution unit executes the common program linked by the intermediate code independently of the first and second device test programs. This allows the executed common program to become a different program independent of the first and second device test programs, and therefore even if the contents of the common program are changed, the changed contents are commonly reflected in the first and second device test programs. Furthermore, at the time of compiling the first and second device test programs, the program execution unit converts the entire program to an intermediate code group, and especially for the program specification command that especially specifies the common program, the program execution unit converts to an intermediate code for a linkage to the common program specified by the program specification command. Because of this the interpreter unit only needs to interpret and execute these intermediate codes.
It is particularly preferable that the compiling unit be provided on the workstation side, the interpreter unit be provided on the tester control section side, and the first and second device test programs be transferred from the workstation to the tester control section by unit of the intermediate code group. Since the compiling unit is provided on the workstation side, the tester control section need not perform compilation processing but perform interpreter processing on the intermediate code group, making it possible to reduce the processing load on the tester control section.
Furthermore, it is also preferable that a xe2x80x9cusexe2x80x9d command be used as the program specification command. At the time of writing the source processor of the tester control section in the C language, etc., using a special xe2x80x9cusexe2x80x9d command not used there makes it possible to differentiate it from the xe2x80x9c#includexe2x80x9d command.